﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mengsk.ProxyDelivery.App.UI
{
    class IPluginManager
    {
        public static IPlugin[] LoadAllUIPlugins()
        {
            IPlugin[] plugins = new IPlugin[]
            {
            };

            return plugins;
        }

        public static PluginGroup[] LoadAllUIPluginGroups()
        {
            List<PluginGroup> pgs = new List<PluginGroup>();

            var pluginGroup = new PluginGroup { Title = "卖家管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Seller.SellerInfoUserControl());
            pluginGroup.Plugins.Add(new Seller.SellerShopUserControl());
            pluginGroup.Plugins.Add(new Seller.SellerLoginUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "订单管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Order.OrderAllUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "售后管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Order.ReturnProcessUserControl());
            pluginGroup.Plugins.Add(new Order.OrderReturnOutUserControl());
            pluginGroup.Plugins.Add(new Order.OrderReturnBackUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "账务中心", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Accounting.SellerMoneyUserControl());
            pluginGroup.Plugins.Add(new Accounting.SellerChargeUserControl());
            pluginGroup.Plugins.Add(new Accounting.WidthdrawUserControl());
            pluginGroup.Plugins.Add(new Accounting.SellerPayUserControl());
            pluginGroup.Plugins.Add(new Accounting.SellerRefundUserControl());
            pluginGroup.Plugins.Add(new Accounting.SellerTradeUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "物流管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Order.OrderGetedMarkUserControl());
            pluginGroup.Plugins.Add(new Delivery.DeliveryScanUserControl());
            pluginGroup.Plugins.Add(new Delivery.DeliveryOutQueryUserControl());
            pluginGroup.Plugins.Add(new Delivery.ReturnUserControl());
            pluginGroup.Plugins.Add(new Delivery.RefusedUserControl());
            pluginGroup.Plugins.Add(new Delivery.ArriveInQueryUserControl());
            pluginGroup.Plugins.Add(new Delivery.DeliveryTemplateUserControl());
            pluginGroup.Plugins.Add(new Delivery.WarehouseUserControl());
            pluginGroup.Plugins.Add(new Delivery.DeliveryTestUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "厂家管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Vendor.VendorUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "商品管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Goods.GiftUserControl());
            pluginGroup.Plugins.Add(new Goods.GoodsUserControl());
            pluginGroup.Plugins.Add(new Goods.GoodsCleanUserControl());
            pluginGroup.Plugins.Add(new Goods.GoodsFixUserControl());
            pluginGroup.Plugins.Add(new Goods.GoodsDuplicateCleanUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "增值服务", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Service.InvicationCodeUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "短信管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Sms.SmsHistoryUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "操作员管理", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Operator.OperatorUserControl());
            pluginGroup.Plugins.Add(new Operator.OperatorLoginHistoryUserControl());
            pgs.Add(pluginGroup);

            pluginGroup = new PluginGroup { Title = "系统配置", Plugins = new List<IPlugin>() };
            pluginGroup.Plugins.Add(new Config.WeightDeviceUserControl());
            pluginGroup.Plugins.Add(new Config.OperatorUserControl());
            pluginGroup.Plugins.Add(new Config.PrintDeviceConfigUserControl());
            pluginGroup.Plugins.Add(new Config.VIPConfigUserControl());
            pluginGroup.Plugins.Add(new Config.SystemConfigUserControl());
            pgs.Add(pluginGroup);

            return pgs.ToArray();
        }
    }
}
